'' Title: ext/preprocessor/tuple/remparens.bi
''  This file is part of the <ext/Preprocessor> library API, and can be
''  directly included by user programs.
''
'' About: License
''  Copyright (c) 2007-2014, FreeBASIC Extended Library Development Group
''  Copyright (c) 2002, Paul Mensonides
''
''  Distributed under the Boost Software License, Version 1.0. See
''  accompanying file LICENSE_1_0.txt or copy at
''  http://www.boost.org/LICENSE_1_0.txt)
''
''  Distributed under the FreeBASIC Extended Library Group license. See
''  accompanying file LICENSE.txt or copy at
''  http://code.google.com/p/fb-extended-lib/wiki/License

# pragma once
# ifndef FBEXT_INCLUDED_PP_TUPLE_REMPARENS_BI__
# define FBEXT_INCLUDED_PP_TUPLE_REMPARENS_BI__ -1

# define FBEXT_PP_TUPLE_REMPARENS(size, tuple) fbextPP_TupleRemParens(size, tuple)

'' Macro: fbextPP_TupleRemParens
''  removes the parenthesis from a tuple.
''
'' Parameters:
'' size - The size of the tuple.
'' tuple - The tuple.
''
'' Returns:
'' Given a tuple *(a, b, c, d)*, this macro will expand to
'' *a, b, c, d*.
# define fbextPP_TupleRemParens(size, tuple) _
         fbextPP_TupleRemParens__##size tuple

# define fbextPP_TupleRemParens__0()
# define fbextPP_TupleRemParens__1(__0) __0
# define fbextPP_TupleRemParens__2(__0,__1) __0, __1
# define fbextPP_TupleRemParens__3(__0,__1,__2) __0, __1, __2
# define fbextPP_TupleRemParens__4(__0,__1,__2,__3) __0, __1, __2, __3
# define fbextPP_TupleRemParens__5(__0,__1,__2,__3,__4) __0, __1, __2, __3, __4
# define fbextPP_TupleRemParens__6(__0,__1,__2,__3,__4,__5) __0, __1, __2, __3, __4, __5
# define fbextPP_TupleRemParens__7(__0,__1,__2,__3,__4,__5,__6) __0, __1, __2, __3, __4, __5, __6
# define fbextPP_TupleRemParens__8(__0,__1,__2,__3,__4,__5,__6,__7) __0, __1, __2, __3, __4, __5, __6, __7
# define fbextPP_TupleRemParens__9(__0,__1,__2,__3,__4,__5,__6,__7,__8) __0, __1, __2, __3, __4, __5, __6, __7, __8
# define fbextPP_TupleRemParens__10(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9
# define fbextPP_TupleRemParens__11(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10
# define fbextPP_TupleRemParens__12(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11
# define fbextPP_TupleRemParens__13(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12
# define fbextPP_TupleRemParens__14(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13
# define fbextPP_TupleRemParens__15(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14
# define fbextPP_TupleRemParens__16(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15
# define fbextPP_TupleRemParens__17(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16
# define fbextPP_TupleRemParens__18(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17
# define fbextPP_TupleRemParens__19(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18
# define fbextPP_TupleRemParens__20(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19
# define fbextPP_TupleRemParens__21(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20
# define fbextPP_TupleRemParens__22(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21
# define fbextPP_TupleRemParens__23(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22
# define fbextPP_TupleRemParens__24(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23
# define fbextPP_TupleRemParens__25(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24
# define fbextPP_TupleRemParens__26(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24,__25) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25
# define fbextPP_TupleRemParens__27(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24,__25,__26) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26
# define fbextPP_TupleRemParens__28(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24,__25,__26,__27) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27
# define fbextPP_TupleRemParens__29(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24,__25,__26,__27,__28) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27, __28
# define fbextPP_TupleRemParens__30(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24,__25,__26,__27,__28,__29) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27, __28, __29
# define fbextPP_TupleRemParens__31(__0,__1,__2,__3,__4,__5,__6,__7,__8,__9,__10,__11,__12,__13,__14,__15,__16,__17,__18,__19,__20,__21,__22,__23,__24,__25,__26,__27,__28,__29,__30) __0, __1, __2, __3, __4, __5, __6, __7, __8, __9, __10, __11, __12, __13, __14, __15, __16, __17, __18, __19, __20, __21, __22, __23, __24, __25, __26, __27, __28, __29, __30

# endif ' include guard
